package com.it.water.exception;

import lombok.Getter;

/**
 * 异常类
 *
 * @author <a href="mailto:2038322151@qq.com">Miraitowa_zcx</a>
 */
@Getter
public class ServiceException extends RuntimeException {

    /**
     * 错误代码
     */
    private String code;

    /**
     * 创建一个ServiceException实例
     *
     * @param message 异常消息
     */
    public ServiceException(String message) {
        super(message);
    }

    /**
     * 创建一个ServiceException实例
     *
     * @param code    错误代码
     * @param message 异常消息
     */
    public ServiceException(String code, String message) {
        super(message);
        this.code = code;
    }

    /**
     * 创建一个ServiceException实例
     *
     * @param code    错误代码
     * @param message 异常消息
     * @param cause   异常原因
     */
    public ServiceException(String code, String message, Throwable cause) {
        super(message, cause);
        this.code = code;
    }

    /**
     * 创建一个ServiceException实例
     *
     * @param code               错误代码
     * @param message            异常消息
     * @param cause              异常原因
     * @param enableSuppression  是否允许抛出异常
     * @param writableStackTrace 是否允许写入堆栈
     */
    public ServiceException(String code, String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
        this.code = code;
    }
}
